CRUD অপারেশন (Create, Read, Update, Delete) এর বেসিক ধারণা

Java Technologies - স্প্রিং বুট জেপিএ (Spring Boot JPA) - Spring Boot JPA এর মাধ্যমে CRUD অপারেশন
319

Spring Boot JPA (Java Persistence API) এর মাধ্যমে আপনি সহজেই ডেটাবেসের সাথে কাজ করতে পারেন। CRUD অপারেশন (Create, Read, Update, Delete) হল ডেটাবেসে ডেটা পরিচালনার জন্য মৌলিক অপারেশন। স্প্রিং ডেটা জেপিএ ব্যবহার করে আপনি এই অপারেশনগুলো খুব সহজে বাস্তবায়ন করতে পারেন।

এই টিউটোরিয়ালে Spring Boot এবং Spring Data JPA ব্যবহার করে CRUD অপারেশনগুলো কীভাবে বাস্তবায়ন করা যায়, তা নিয়ে আলোচনা করা হবে।


CRUD অপারেশন এর ধারণা

  1. Create: নতুন ডেটা ইনসার্ট করা।
  2. Read: ডেটাবেস থেকে ডেটা রিড বা ফেরত নেওয়া।
  3. Update: বিদ্যমান ডেটা আপডেট বা পরিবর্তন করা।
  4. Delete: ডেটাবেস থেকে ডেটা মুছে ফেলা।

Spring Data JPA ব্যবহার করে এই চারটি অপারেশন খুব সহজেই সম্পাদন করা যায়। Spring Data JPA রেপোজিটরি (Repository) ইন্টারফেসে কিছু মেথড রয়েছে, যেগুলি স্বয়ংক্রিয়ভাবে এই CRUD অপারেশনগুলি করতে সহায়তা করে।


1. Create Operation (ডেটা তৈরি করা)

Create অপারেশনটি ডেটাবেসে নতুন রেকর্ড (অবজেক্ট) ইনসার্ট করার জন্য ব্যবহৃত হয়। স্প্রিং ডেটা JPA এর save() মেথড ব্যবহার করে নতুন ডেটা ইনসার্ট করা হয়।

উদাহরণ: Create Operation

EmployeeService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    // Create Operation
    public Employee createEmployee(Employee employee) {
        return employeeRepository.save(employee);  // save() will insert the new employee
    }
}

EmployeeController.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @PostMapping
    public Employee createEmployee(@RequestBody Employee employee) {
        return employeeService.createEmployee(employee);
    }
}

Employee.java (Entity)

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee {

    @Id
    private Long id;
    private String name;
    private String email;

    // Constructors, Getters, Setters
}

এখানে, POST /employees এ রিকোয়েস্ট পাঠালে Employee অবজেক্ট তৈরি হবে এবং ডেটাবেসে ইনসার্ট হবে।


2. Read Operation (ডেটা পড়া)

Read অপারেশনটি ডেটাবেস থেকে ডেটা রিড করার জন্য ব্যবহৃত হয়। স্প্রিং ডেটা JPA এর findById() বা findAll() মেথড ব্যবহার করে ডেটা রিড করা যায়।

উদাহরণ: Read Operation

EmployeeService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    // Read Operation - All Employees
    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();  // findAll() will fetch all employees
    }

    // Read Operation - Find by ID
    public Employee getEmployeeById(Long id) {
        Optional<Employee> employee = employeeRepository.findById(id);
        return employee.orElse(null);  // returns the employee if found, else null
    }
}

EmployeeController.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/{id}")
    public Employee getEmployeeById(@PathVariable Long id) {
        return employeeService.getEmployeeById(id);
    }
}

এখানে, GET /employees রিকোয়েস্টে সমস্ত কর্মচারীদের তালিকা পাওয়া যাবে এবং GET /employees/{id} রিকোয়েস্টে একটি নির্দিষ্ট কর্মচারীর তথ্য পাওয়া যাবে।


3. Update Operation (ডেটা আপডেট করা)

Update অপারেশনটি ডেটাবেসে বিদ্যমান রেকর্ডকে আপডেট করার জন্য ব্যবহৃত হয়। স্প্রিং ডেটা JPA এর save() মেথড দিয়ে আপডেট করা যায়, কারণ save() মেথড নতুন রেকর্ড ইনসার্ট এবং পুরনো রেকর্ড আপডেট করতে সক্ষম।

উদাহরণ: Update Operation

EmployeeService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    // Update Operation
    public Employee updateEmployee(Long id, Employee updatedEmployee) {
        if (employeeRepository.existsById(id)) {
            updatedEmployee.setId(id);  // Set the ID to keep the original ID
            return employeeRepository.save(updatedEmployee);  // save() will update the employee
        }
        return null;  // Employee not found
    }
}

EmployeeController.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @PutMapping("/{id}")
    public Employee updateEmployee(@PathVariable Long id, @RequestBody Employee updatedEmployee) {
        return employeeService.updateEmployee(id, updatedEmployee);
    }
}

এখানে, PUT /employees/{id} রিকোয়েস্টে একটি নির্দিষ্ট id এর Employee আপডেট হবে।


4. Delete Operation (ডেটা মুছে ফেলা)

Delete অপারেশনটি ডেটাবেস থেকে রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। স্প্রিং ডেটা JPA এর deleteById() মেথড ব্যবহার করে রেকর্ড মুছে ফেলা যায়।

উদাহরণ: Delete Operation

EmployeeService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class EmployeeService {

    @Autowired
    private EmployeeRepository employeeRepository;

    // Delete Operation
    public void deleteEmployee(Long id) {
        employeeRepository.deleteById(id);  // deleteById() will remove the employee
    }
}

EmployeeController.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    @DeleteMapping("/{id}")
    public void deleteEmployee(@PathVariable Long id) {
        employeeService.deleteEmployee(id);
    }
}

এখানে, DELETE /employees/{id} রিকোয়েস্টে একটি নির্দিষ্ট id এর Employee মুছে ফেলা হবে।


সারাংশ

Spring Boot JPA ব্যবহার করে CRUD (Create, Read, Update, Delete) অপারেশন সহজভাবে সম্পাদিত হয়। স্প্রিং ডেটা JPA এর save(), findById(), findAll(), deleteById() ইত্যাদি মেথডগুলো ব্যবহার করে এই অপারেশনগুলো খুব সহজেই করা যায়। এর মাধ্যমে ডেটাবেসের সাথে মিথস্ক্রিয়া সহজ এবং স্বয়ংক্রিয়ভাবে করা সম্ভব হয়, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সময় এবং প্রচেষ্টা বাঁচায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...